home *** CD-ROM | disk | FTP | other *** search
/ The Sunday Times: The Month 2004 August / The Sunday Times - The Month 2004-08.iso / pc / engine / modules / preview.swf / scripts / frame_1 / DoAction.as
Encoding:
Text File  |  2004-07-06  |  10.6 KB  |  401 lines

  1. function addLink(mc)
  2. {
  3.    Links[mc.link] = mc;
  4. }
  5. function getMCfromLink(Item)
  6. {
  7.    var _loc1_ = Item;
  8.    if(Links[_loc1_] == null)
  9.    {
  10.       var _loc2_ = [];
  11.       while(_loc1_ != sideMenu.ItemHome)
  12.       {
  13.          _loc2_.unshift(_loc1_._name.split("_").pop());
  14.          _loc1_ = _loc1_._parent._parent;
  15.       }
  16.       var _loc3_ = _loc2_.join("/");
  17.       Links[_loc1_] = Links[_loc3_];
  18.    }
  19.    return Links[_loc1_];
  20. }
  21. function removeLinkListener()
  22. {
  23.    Tardis.sideMenu.EB.removeListener(this);
  24. }
  25. function loadImage(mc, node, extrapath)
  26. {
  27.    var _loc3_ = extrapath;
  28.    if(_loc3_ == null)
  29.    {
  30.       _loc3_ = "";
  31.    }
  32.    var strDefaultPath = Tardis.ASSETS_FOLDER + "images/" + Tardis.ActiveSection.id + "/";
  33.    var _loc1_ = node.firstChild.nodeValue;
  34.    var _loc2_ = node.attributes.path;
  35.    if(_loc2_ != null)
  36.    {
  37.       _loc1_ = _loc2_ + _loc1_;
  38.    }
  39.    else
  40.    {
  41.       _loc1_ = strDefaultPath + _loc3_ + _loc1_;
  42.    }
  43.    if(strPathPrefix == null)
  44.    {
  45.       strPathPrefix = "";
  46.    }
  47.    mc.loadMovie(strPathPrefix + _loc1_);
  48. }
  49. function init()
  50. {
  51.    var _loc2_ = Tardis.ActiveSection.id;
  52.    var _loc1_ = Tardis.Colors;
  53.    strSECTION_COLOR = _loc1_.getString(_loc2_);
  54.    SECTION_COLOR = _loc1_.getHex(_loc2_);
  55.    strSECTION_COLOR50 = _loc1_.getString(_loc2_ + "50");
  56.    SECTION_COLOR50 = _loc1_.getHex(_loc2_ + "50");
  57.    DEFAULT_COLOR = _loc1_.getHex("default");
  58.    DEFAULT_COLOR50 = _loc1_.getString("default50");
  59.    ndItems = nodeData.byName("items");
  60.    ndDefault = nodeData.byName("default");
  61.    aspect = ndDefault.attributes.aspect;
  62.    prevImage = ndDefault.attributes.prevImage;
  63.    prevWidth = ndDefault.attributes.prevWidth;
  64.    if(prevImage == "true")
  65.    {
  66.       loadFader();
  67.    }
  68.    else if(nodeData.byName("image").getText() != null)
  69.    {
  70.       this.createEmptyMovieClip("mc_images",++depth);
  71.       mc_images._x = 10;
  72.       mc_images._y = 10;
  73.       loadImage(mc_images,nodeData.byName("image"),IMAGE_PATH);
  74.       intervalID = setInterval(checkLoad,300);
  75.    }
  76.    else
  77.    {
  78.       showText();
  79.    }
  80.    bespokeInit();
  81. }
  82. function loadFader()
  83. {
  84.    var _loc1_ = this;
  85.    _loc1_.createEmptyMovieClip("mc_images",++depth);
  86.    mc_images._x = 0;
  87.    mc_images._y = 0;
  88.    mc_images.onReady = function()
  89.    {
  90.       var _loc1_ = this;
  91.       _loc1_.onComplete = function()
  92.       {
  93.          delete this.onComplete;
  94.          this._parent.onComplete();
  95.       };
  96.       _loc1_.nodeData = _loc1_._parent.ndItems;
  97.       _loc1_.strPathPrefix = _loc1_._parent.strPathPrefix;
  98.       _loc1_.init();
  99.    };
  100.    mc_images.loadMovie(strPathPrefix + Tardis.ENGINE_FOLDER + "modules/preview_fader.swf");
  101.    intervalID = setInterval(checkLoad,300,_loc1_);
  102. }
  103. function checkLoad()
  104. {
  105.    if(mc_images._width > 0 && !displayed)
  106.    {
  107.       displayed = true;
  108.       showText();
  109.       clearInterval(intervalID);
  110.    }
  111. }
  112. function showText()
  113. {
  114.    if(aspect == "portrait")
  115.    {
  116.       RESET_Y = mc_images._height + 3;
  117.       RESET_X = promoX1 = promoX2 = 8;
  118.       if(prevImage == "true")
  119.       {
  120.          RESET_WIDTH = mc_images._width - 20;
  121.       }
  122.       else
  123.       {
  124.          RESET_WIDTH = prevWidth * 183 - 20;
  125.       }
  126.       promoY1 = 344;
  127.       promoY2 = 358;
  128.    }
  129.    else
  130.    {
  131.       RESET_Y = 3;
  132.       RESET_X = promoX1 = promoX2 = mc_images._x + mc_images._width + 8;
  133.       if(prevImage == "true")
  134.       {
  135.          RESET_WIDTH = 568 - mc_images._width - 20;
  136.       }
  137.       else
  138.       {
  139.          RESET_WIDTH = prevWidth * 183 - 20;
  140.       }
  141.       promoY1 = mc_images._height - 51;
  142.       promoY2 = mc_images._height - 37;
  143.    }
  144.    titleFF._width = title2FF._width = bodyFF._width = body2FF._width = body3FF._width = RESET_WIDTH;
  145.    displayed = true;
  146.    doOut("initial");
  147.    onComplete();
  148.    _visible = true;
  149. }
  150. function clearFader()
  151. {
  152.    removeMovieClip("mc_images");
  153.    loadFader();
  154.    mc_images.clearUp();
  155. }
  156. function exit()
  157. {
  158.    delete ndItems;
  159.    delete ndDefault;
  160.    delete nodeData;
  161. }
  162. function doOver(num)
  163. {
  164.    var _loc1_ = num;
  165.    if(_loc1_ == undefined || _loc1_ == null || _loc1_ == "default")
  166.    {
  167.       populateRollText(ndDefault);
  168.    }
  169.    else
  170.    {
  171.       var _loc2_ = ndItems.childNodes[_loc1_];
  172.       if(_loc2_ != null)
  173.       {
  174.          populateRollText(_loc2_);
  175.          mc_images.doOver(_loc1_);
  176.       }
  177.    }
  178. }
  179. function doOut(num)
  180. {
  181.    var _loc1_ = num;
  182.    populateRollText(ndDefault);
  183.    if(!(_loc1_ == "default" || _loc1_ == undefined || _loc1_ == null))
  184.    {
  185.       mc_images.doOut(_loc1_);
  186.    }
  187. }
  188. function doPromoOver()
  189. {
  190.    promoMC.gotoAndStop("on");
  191. }
  192. function doPromoOut()
  193. {
  194.    promoMC.gotoAndStop("off");
  195. }
  196. function populateRollText(node)
  197. {
  198.    var _loc1_ = node;
  199.    var promo = false;
  200.    removeMovieClip("promoMC");
  201.    titleFF.htmlText = "";
  202.    title2FF.htmlText = "";
  203.    bodyFF.htmlText = "";
  204.    TEXT_POS = RESET_Y;
  205.    if(_loc1_.byName("title").getText() != null || _loc1_.byName("title2").getText() != null || _loc1_.byName("title3").getText() != null)
  206.    {
  207.       var strTitle = "<FONT COLOR=\"" + strSECTION_COLOR + "\">" + _loc1_.byName("title").getText() + " </FONT>";
  208.       strTitle += "<FONT COLOR=\"" + strSECTION_COLOR50 + "\"> " + _loc1_.byName("title2").getText() + " </FONT>";
  209.       strTitle += "<FONT COLOR=\"" + DEFAULT_COLOR50 + "\"> " + _loc1_.byName("title3").getText() + " </FONT>";
  210.       titleFF.htmlText = strTitle;
  211.       titleFF._y = TEXT_POS;
  212.       titleFF._x = RESET_X;
  213.       titleFF.resize();
  214.       TEXT_POS += titleFF._height - 3;
  215.    }
  216.    if(_loc1_.byName("byline").getText() != null)
  217.    {
  218.       title2FF.htmlText = _loc1_.byName("byline").getText();
  219.       title2FF.textColor = DEFAULT_COLOR;
  220.       title2FF._y = TEXT_POS;
  221.       title2FF._x = RESET_X;
  222.       title2FF.resize();
  223.       TEXT_POS += title2FF._height - 9;
  224.    }
  225.    if(_loc1_.byName("body").getText() != null)
  226.    {
  227.       bodyFF.htmlText = parseBoldTags(_loc1_.byName("body").getText());
  228.       bodyFF.textColor = DEFAULT_COLOR;
  229.       bodyFF._y = TEXT_POS;
  230.       bodyFF._x = RESET_X;
  231.       bodyFF.autoSize = true;
  232.       TEXT_POS += bodyFF._height + 7;
  233.    }
  234.    if(_loc1_.byName("body2").getText() != null)
  235.    {
  236.       body2FF.htmlText = _loc1_.byName("body2").getText();
  237.       body2FF.textColor = DEFAULT_COLOR;
  238.       body2FF.resize();
  239.       body2FF._y = TEXT_POS;
  240.       body2FF._x = RESET_X;
  241.       TEXT_POS += body2FF._height - 10;
  242.    }
  243.    if(_loc1_.byName("body3").getText() != null)
  244.    {
  245.       body3FF.htmlText = _loc1_.byName("body3").getText();
  246.       body3FF.textColor = SECTION_COLOR;
  247.       body3FF._y = TEXT_POS;
  248.       body3FF._x = RESET_X;
  249.    }
  250.    var _loc2_ = _loc1_.byName("promotion");
  251.    if(_loc2_.byName("byline2").getText() != null)
  252.    {
  253.       attachMovie("promoMC2","promoMC",++depth);
  254.       promoMC._x = promoX1;
  255.       promoMC._y = promoY1;
  256.       promo = true;
  257.    }
  258.    else if(_loc2_.byName("title").getText() != null || _loc2_.byName("byline").getText() != null)
  259.    {
  260.       attachMovie("promoMC1","promoMC",++depth);
  261.       promoMC._x = promoX2;
  262.       promoMC._y = promoY2;
  263.       promo = true;
  264.    }
  265.    if(promo)
  266.    {
  267.       if(_loc2_.attributes.link != null)
  268.       {
  269.          PromoMC.link = _loc2_.attributes.link;
  270.          PromoMC.navLink = true;
  271.       }
  272.       else
  273.       {
  274.          PromoMC.link = _loc2_.byName("link").getText();
  275.       }
  276.       PromoMC.promotitleFF.htmlText = _loc2_.byName("title").getText();
  277.       PromoMC.promotitleFF.textColor = SECTION_COLOR50;
  278.       PromoMC.promotitleFF.autosize = true;
  279.       PromoMC.promobylineFF._x = PromoMC.promotitleFF._x + PromoMC.promotitleFF._width;
  280.       PromoMC.promobylineFF.htmlText = _loc2_.byName("byline").getText();
  281.       PromoMC.promobylineFF.textColor = DEFAULT_COLOR;
  282.       PromoMC.promobylineFF.autosize = true;
  283.       if(_loc2_.byName("byline2").getText() != null)
  284.       {
  285.          PromoMC.promobyline2FF.htmlText = _loc2_.byName("byline2").getText();
  286.          PromoMC.promobyline2FF.textColor = DEFAULT_COLOR;
  287.       }
  288.       else
  289.       {
  290.          PromoMC.promobyline2FF._height = 0;
  291.       }
  292.       PromoMC.btn._width = PromoMC.promobylineFF._width + PromoMC.promotitleFF._width;
  293.       PromoMC.btn._height = PromoMC._height + PromoMC.promobyline2FF._height;
  294.    }
  295.    else
  296.    {
  297.       PromoMC.btn.enabled = false;
  298.    }
  299.    var _loc3_ = _loc1_.byName("bodylink");
  300.    if(_loc3_.byName("label").getText() != null)
  301.    {
  302.       attachMovie("bodyLinkMC","bodyLinkMC",++depth);
  303.       bodyLinkMC._x = promoX1;
  304.       bodyLinkMC._y = promoY1;
  305.       bodyLinkMC.arrowMC._visible = true;
  306.       bodyLinkMC.contentFF.htmlText = _loc3_.byName("label").getText();
  307.       bodyLinkMC.contentFF.textColor = SECTION_COLOR50;
  308.       bodyLinkMC.contentFF.autosize = true;
  309.       bodyLinkMC.navLink = false;
  310.       if(_loc3_.attributes.link != null)
  311.       {
  312.          bodyLinkMC.link = _loc3_.attributes.link;
  313.          bodyLinkMC.navLink = true;
  314.       }
  315.       else
  316.       {
  317.          bodyLinkMC.link = _loc3_.byName("link").getText();
  318.       }
  319.       bodyLinkMC.btn._width = bodyLinkMC.contentFF._width + bodyLinkMC.arrowMC._x - 20;
  320.       bodyLinkMC.btn.enabled = true;
  321.       bodyLinkMC.arrowMC._x = bodyLinkMC.contentFF._x + bodyLinkMC.contentFF._width + 3;
  322.    }
  323. }
  324. function parseBoldTags(str)
  325. {
  326.    var _loc1_ = str;
  327.    var _loc2_ = _loc1_.indexOf("<b>");
  328.    if(_loc2_ != -1)
  329.    {
  330.       var _loc3_ = _loc1_.indexOf("</b>");
  331.       var word = _loc1_.substring(_loc2_ + 3,_loc3_);
  332.       var beginning = _loc1_.substring(0,_loc2_);
  333.       var end = _loc1_.substring(_loc3_ + 4);
  334.       return beginning + "<font face=\'FranklinGotURWTDem\'>" + word + "</font>" + parseBoldTags(end);
  335.    }
  336.    return _loc1_;
  337. }
  338. function promoUp()
  339. {
  340.    if(PromoMc.navLink)
  341.    {
  342.       Tardis.sideMenu.doUp(PromoMC.link);
  343.    }
  344.    else
  345.    {
  346.       getURL("lingo:Flsh_webPageOpen(\"" + PromoMC.link + "\")","");
  347.    }
  348.    Tardis.sideMenu.doPromoUp();
  349. }
  350. function promoOver()
  351. {
  352.    promoMC.gotoAndStop("on");
  353.    if(PromoMc.navLink)
  354.    {
  355.       Tardis.sideMenu.doOver(PromoMC.link);
  356.    }
  357. }
  358. function promoOut()
  359. {
  360.    promoMC.gotoAndStop("off");
  361.    if(PromoMc.navLink)
  362.    {
  363.       Tardis.sideMenu.doOut(PromoMC.link);
  364.    }
  365. }
  366. function txtOver(mc)
  367. {
  368.    Tardis.sideMenu.doOver(mc.link);
  369. }
  370. function txtOut(mc)
  371. {
  372.    Tardis.sideMenu.doOut(mc.link);
  373. }
  374. function txtUp(mc)
  375. {
  376.    var _loc1_ = mc;
  377.    if(_loc1_.navLink)
  378.    {
  379.       Tardis.sideMenu.doUp(_loc1_.link);
  380.    }
  381.    else
  382.    {
  383.       Tardis.webPageOpen(_loc1_.link,"_blank");
  384.    }
  385. }
  386. Links = {};
  387. Tardis.sideMenu.EB.addListener(this);
  388. this._visible = false;
  389. stop();
  390. depth = 0;
  391. _parent.preview = this;
  392. onReady();
  393. this.onUnload = function()
  394. {
  395.    bespokeUnload();
  396.    removeLinkListener();
  397.    clearInterval(intervalID);
  398.    this.onUnload = null;
  399. };
  400. var nmLastCover = -1;
  401.